<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use DB;
use Hash;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\UserFromPostRequset;
class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function getIndex(Request $request)
    {
        //查询多有用户的数据
         // $users = DB::table('user')->get();
        // dd($users);
        // 查询每页显示条数
        
        $num = $request->input('num',10);

        //检测是否提交查询关键字
        if($request->has('keywords')){
            $users =DB::table('user')->where('username','like','%'.$request->input('keywords').'%')->paginate($num);
        }else{
                $users =DB::table('user')->paginate($num);
        }

        //提取数据分配到页面中
        $data =$request->except('
            page');

        
    


        return  view('Admin.user.index',['users'=>$users,'data'=>$data]);
    }
    /**
     * 后台用户添加
     *
     * @return view 用户添加表单
     */
    
    public function getAdd()
    {
       return view('Admin.user.Add');
    }
    /**
     * 后台用户添加处理
     *
     * @return view 用户添加数据
     */
    
    public function postInsert(UserFromPostRequset $request)
    {
        //数据验证
        // if($request->input('username')=='')
        // {
        //     $request->flash();//闪存所有数据
            // return back()->
     
        //查看提交过来的 数据
        $data = $request->except('_token');
        

        //检测是否有文件上传
       $data['pic']=$this->upload($request);
        //进行Hash加密
        $data['password'] = Hash::make($data['password']);
        //将数据入库
        $res = DB::table('user')->insertGetId($data);
        if($res){
            //重定向到user/index
            return redirect('admin/user/index')->with('success','用户添加成功');
        }else{
            //返回上个页面
            return back()->with('error','用户添加失败');
        }
        
    }

    //文件上传操作
    public function upload($request)
    {
        //检测是否有文件上传
        if ($request->hasFile('pic')) {
            //随机文件名
            $name=md5(time()+rand(1,99999));
            //后缀名
            $su = $request->file('pic')->getClientOriginalExtension();
            $request->file('pic')->move('./public/uploads', $name.'.'.$su);

            return '/public/uploads/'.$name.'.'.$su;

        }
    }
    //用户删除
        public function postDel(Request $request)
        {
            //获取数据
            $id=$request->input('id');

            //执行删除
            $res=DB::table('user')->where('id',$id)->delete();
            echo $res; 
            if($res){

                    //重定向到user/index
                        return redirect('admin/user/index')->with('success','用户删除成功');
                            }else{
                                //回到上个页面
                        return back()->with('error','用户删除失败');
                            }
                       
                          

           
        }
        //执行用户修改
        public function getEdit($id)
        {
            $users =DB::table('user')->where('id',$id)->first();

            //解析模板 分配数据
            return view('Admin.user.edit',['users'=>$users]);
        }


            //执行用户数据的修改
            public function postUpdate(Request $request)
            {
                $data =$request->except('_token');
                if ($request->hasFile('pic')) {
                //调用头像的上传操作
                $data['pic']=$this->upload($request);}

                
                //执行数据修改
                $res = DB::table('user')->where('id',$data['id'])->update($data);
                if($res){

                    //重定向到user/index
                        return redirect('admin/user/index')->with('success','用户修改成功');
                            }else{
                                //回到上个页面
                        return back()->with('error','用户修改失败');
                            }
                        }
                    //注销
                    public function getOutlogin(Request $request){
                        $value=$request->session()->flush();

                        if(empty($value)){
                            return redirect('admin/login');
                        }
                    }


                    
}
